import cookiesUtil from "js-cookie";

/**
 * js-cookie 相关连接
 * https://www.npmjs.com/package/js-cookie
 */
/**
 * 存储cookie并设置过期7天时间
 * Cookies.set('name', 'value', { expires: 7 });
 *
 * cookie和path有关
 * Cookies.set('name', 'value', { expires: 7, path: '' });
 */

/**
 * 设置cookie
 * @param name cookie的名称
 * @param content cookie的内容 必须为字符串或者JSON
 * @param option  相关配置参数
 *        {
 *          expires:7, 过期时间，单位（天）
 *          path:'', //访问路径
 *          domain：'.yourdomain.com'//域名
 *        }
 */
export const setCookie = (name, content, options = {}) => {
  if (!name) return;
  if (typeof content !== "string") {
    content = JSON.stringify(content);
  }
  cookiesUtil.set(name, content);
};

/**
 * 获取localStorage
 * @param name cookie的名称
 * @returns {*}
 */
export const getStore = (name, isJson = false) => {
  if (!name) return;
  return !isJson ? cookiesUtil.get(name) : cookiesUtil.getJSON(name);
};

/**
 * 删除localStorage
 * @param name cookie的名称
 * @param options
 *
 * 注意点：如果设置了path,那么删除也要设置
 *         Cookies.set('name', 'value', { path: '' });
           Cookies.remove('name'); // fail!
           Cookies.remove('name', { path: '' }); // removed!
 */
export const removeStore = (name, options = {}) => {
  if (!name) return;
  cookiesUtil.remove(name, options);
};
